package com.imooc.bilibili.domain;

import java.util.Date;
import java.util.List;

/**
 * 视频评论表
 */
public class VideoComment {

    /**
     * 主键id
     */
    private Long id;

    /**
     * 视频id
     */
    private Long videoId;

    /**
     * 创建这条评论的用户id
     */
    private Long userId;

    /**
     * 评论内容
     */
    private String comment;

    /**
     * 回复的用户id
     */
    private Long replyUserId;

    /**
     * 例子：
     * 我发表了一个评论，此时replyUserId就是我评论的那个投稿视频的用户id，rootId就是null
     * 甲回复了我的评论，此时replyUserId就是我的用户id，rootId就是我的评论id
     * 乙回复了甲的评论，此时replyUserId就是甲的用户id，rootId就是甲的评论id
     */

    /**
     * 根评论id
     * 如果rootId等于null，表示当前评论是根评论
     */
    private Long rootId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 二级评论形成的链表
     */
    private List<VideoComment> childList;

    /**
     * 用户信息（哪一个用户创建了这条评论）
     */
    private UserInfo userInfo;

    /**
     * 如果是二级评论的话，具体回复的是哪一个用户（回复的用户的详细信息）
     */
    private UserInfo replyUserInfo;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getVideoId() {
        return videoId;
    }

    public void setVideoId(Long videoId) {
        this.videoId = videoId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public Long getReplyUserId() {
        return replyUserId;
    }

    public void setReplyUserId(Long replyUserId) {
        this.replyUserId = replyUserId;
    }

    public Long getRootId() {
        return rootId;
    }

    public void setRootId(Long rootId) {
        this.rootId = rootId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public List<VideoComment> getChildList() {
        return childList;
    }

    public void setChildList(List<VideoComment> childList) {
        this.childList = childList;
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public UserInfo getReplyUserInfo() {
        return replyUserInfo;
    }

    public void setReplyUserInfo(UserInfo replyUserInfo) {
        this.replyUserInfo = replyUserInfo;
    }
}
